﻿/* 在李秋实版本基础上，由肖凯进行修改，半成品状态 */
/* 目前缺文件头的结构体 */
/* 目前的输出函数仅在控制台显示，后续使用是需要返回固定数值 */

// [file: ReadO.h]
#pragma once
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
#include <iomanip>
#include "CoordSys.h"

using namespace std;

struct obsSat {
    string satID;
    vector<double> values;
};

struct obsEpoch {
    string time;
    int numSat;
    vector<obsSat> listObsSat;
};

class ReadO {
public:
    ReadO();
    ReadO(string filePath);
public:
    bool set_file(string filePath);
    bool parse_file();
    vector<obsEpoch>* get_obs();
    void print_head();
    void print_body(int numtoshow);
    XYZ get_AppxPos() const { return appxPos; } // 新增获取近似位置方法
private:
    string    filePath;
    vector<string> head;
    vector<obsEpoch> ListObs;
    XYZ appxPos = { 0, 0, 0 }; // 存储近似位置
};